24,913 research outputs found
Metamorphic testing: a review of challenges and opportunities
Metamorphic testing is an approach to both test case generation and test result verification. A central element is a set of metamorphic relations, which are necessary properties of the target function or algorithm in relation to multiple inputs and their expected outputs. Since its first publication, we have witnessed a rapidly increasing body of work examining metamorphic testing from various perspectives, including metamorphic relation identification, test case generation, integration with other software engineering techniques, and the validation and evaluation of software systems. In this paper, we review the current research of metamorphic testing and discuss the challenges yet to be addressed. We also present visions for further improvement of metamorphic testing and highlight opportunities for new research
A new method for constructing metamorphic relations
A fundamental problem for software testing is the oracle problem, which means that in many practical situations, it is extremely expensive, if not impossible, to verify the test result given any possible program input. Metamorphic testing is an approach to alleviating the oracle problem. The key part of metamorphic testing is a set of necessary properties of the software under test, namely metamorphic relations. Metamorphic relations not only help generate test cases, but also provide a mechanism to partially verify the test results without the need of oracle. In most previous studies, metamorphic relations were identified manually by testers in an ad hoc way. There is no systematic methodology that helps us identify metamorphic relations. In this paper, we propose a simple method, namely, the composition of metamorphic relations, for systematically constructing new metamorphic relations based on the already identified metamorphic relations. We conduct a case study and show that new metamorphic relations can be easily constructed by compositing some existing metamorphic relations. It is also observed that the new metamorphic relations are very likely to deliver a higher cost-effectiveness of metamorphic testing than the original metamorphic relations
Identifying Implementation Bugs in Machine Learning based Image Classifiers using Metamorphic Testing
We have recently witnessed tremendous success of Machine Learning (ML) in
practical applications. Computer vision, speech recognition and language
translation have all seen a near human level performance. We expect, in the
near future, most business applications will have some form of ML. However,
testing such applications is extremely challenging and would be very expensive
if we follow today's methodologies. In this work, we present an articulation of
the challenges in testing ML based applications. We then present our solution
approach, based on the concept of Metamorphic Testing, which aims to identify
implementation bugs in ML based image classifiers. We have developed
metamorphic relations for an application based on Support Vector Machine and a
Deep Learning based application. Empirical validation showed that our approach
was able to catch 71% of the implementation bugs in the ML applications.Comment: Published at 27th ACM SIGSOFT International Symposium on Software
Testing and Analysis (ISSTA 2018
Metamorphic Testing in Autonomous System Simulations
Metamorphic testing has proven to be effective for test case generation and
fault detection in many domains. It is a software testing strategy that uses
certain relations between input-output pairs of a program, referred to as
metamorphic relations. This approach is relevant in the autonomous systems
domain since it helps in cases where the outcome of a given test input may be
difficult to determine. In this paper therefore, we provide an overview of
metamorphic testing as well as an implementation in the autonomous systems
domain. We implement an obstacle detection and avoidance task in autonomous
drones utilising the GNC API alongside a simulation in Gazebo. Particularly, we
describe properties and best practices that are crucial for the development of
effective metamorphic relations. We also demonstrate two metamorphic relations
for metamorphic testing of single and more than one drones, respectively. Our
relations reveal several properties and some weak spots of both the
implementation and the avoidance algorithm in the light of metamorphic testing.
The results indicate that metamorphic testing has great potential in the
autonomous systems domain and should be considered for quality assurance in
this field.Comment: 8 pages, 5 figures, 48th Euromicro Conference Series on Software
Engineering and Advanced Applications (SEAA
A Template–Based Approach to Describing Metamorphic Relations
Metamorphic testing enables the generation of test
cases in the absence of an oracle by exploiting relations among
different executions of the program under test, called metamorphic
relations. In a recent survey, we observed a great variability
in the way metamorphic relations are described, typically in
an informal manner using natural language. We noticed that
the lack of a standard mechanism to describe metamorphic
relations often makes them hard to read and understand, which
hinders the widespread adoption of the technique. In this paper,
we propose a template–based approach for the description of
metamorphic relations. The proposed template aims to ease
communication among practitioners as well as to contribute to
research dissemination. Also, it provides a helpful guide for
those approaching metamorphic testing for the first time. For
the validation of the approach, we used the proposed template
to describe 17 previously published metamorphic relations from
different domains and groups of authors, without finding expressiveness
problems. We hope that this work eases the diffusion and
adoption of metamorphic testing, contributing to the progress of
this thriving testing technique.Comisión Interministerial de Ciencia y Tecnología TIN2015-70560-RJunta de Andalucía P12-TIC-186
- …